home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-04-25 | 39.8 KB | 1,004 lines |
-
-
-
- PacketSorter v1.4 page 1/19
-
-
- PacketSorter v1.4
- Copyright 1993, 1994 Rolf K. Wilms
-
-
-
- Key Features
- ------------
-
-
- - defragment FidoNet mail packets for up to 5 times faster tossing
-
- - split and unsplit large messages to fit your systems limits
-
- - sort messages by subject and/or time for easy thread-following
-
- - break down large inbound packets to a handy size
-
- - remove the garbage from 'bad' packets
-
- - operates stand-alone or can be called from echomail tosser
-
- - 32-BIT OS/2 and DOS version (needs i386 or higher)
-
-
- PacketSorter v1.4 page 2/19
-
-
-
-
- Contents of this document
- -------------------------
-
- 1.Brief license and warranty information ......................3
- 2.A warning ...................................................3
- 3.System requirements .........................................3
- 4.Introduction ................................................4
- 5.Installation ................................................5
- As a VCPI client ..........................................5
- As a DPMI client ..........................................5
- Under OS/2 ................................................5
- Quick installation for Squish users .......................6
- Quick installation for CrossPoint users ...................6
- Quick installation for IMail users ........................7
- Quick installation for FastEcho users .....................8
- Installation for users of other tossers ...................9
- 6.Ways of configuration .......................................9
- 7.Command line options ........................................10
- -c<file> configuration file name ........................10
- -w<count> number of messages to keep in memory ...........10
- -s<size> limit in bytes for (un)splitting messages ......10
- -p<count> max. number of messages in output packets ......11
- -otime sort messages by time ..........................11
- -osubject sort messages by subject and time ..............11
- -g<size> remove garbage from packets ....................11
- -e<entry> select Archiver entry from cfg file ............12
- -l<file> log file name ..................................12
- -d<dir> directory where packets are searched ...........13
- -h help ...........................................13
- [program-with-args] exec. archiver before processing .....13
- 8. Setting the options via an environment variable ............13
- 9. Setting the options via a configuration file ...............14
- 10.Packets recognized and created .............................14
- 11.Return codes ...............................................15
- 12.Disk space consumption .....................................15
- 13.Removing garbage from packets ..............................15
- 14.Technology .................................................16
- 15.What is different in the registered version ................16
- 16.Other operating systems ....................................17
- native MS-Windows .........................................17
- Linux/Unix/Nextstep .......................................17
- 17.Author .....................................................17
- 18.Contents of the distribution archives ......................18
- 19.Thanks .....................................................19
-
-
- PacketSorter v1.4 page 3/19
-
-
-
- 1. Brief license and warranty information
- -----------------------------------------
-
- You may copy and distribute the unmodified distribution archives
- (PSRT_14.ZIP) as you receive it in any medium.
-
- You may use PacketSorter for testing if it is of value to you. You must
- not use PacketSorter for more than 30 days without registering it.
- After a period of 30 days you must either stop using PacketSorter or
- register. Look at the file 'ORDER.FRM' on how to register. The
- registration fee is US $15.
-
- There is no warranty.
-
- Please read the file 'license.doc' for details.
-
-
- 2. A warning
- ------------
-
- This version of PacketSorter has only been tested on a few different
- systems, as it is any time when a new public release comes out.
- Although PacketSorter performed well on these systems there is no
- guarantee that it does not break yours. It is no bad idea to back up
- your mail packets before you try PacketSorter the first time.
-
-
- 3. System requirements
- ----------------------
-
- Operating system: OS/2 2.x
- or DOS 3.0 or higher
-
- Processor: i386 or higher
-
- Memory: A minimum of 2MB is needed for DOS
-
-
- PacketSorter v1.4 page 4/19
-
-
-
- 4. Introduction
- ---------------
-
- PacketSorter is a utility for defragmenting, splitting, unsplitting,
- cleaning and sorting inbound FidoNet (FTS-0001) message packets. It has
- been developed in the first place because the time the echomail tosser
- Squish needs to toss messsages into the messagebase heavily depends on
- the fragmentation level of the packets received. The packets you
- receive from your links are usually not sorted in any order.
- PacketSorter groups the messages contained in the packets by their area
- tag. On my system the packets defragmented with PacketSorter are tossed
- by Squish up to 5 times faster than the original packets. The
- performance gain you will notice depends on the tosser you use, the
- messagebase you use and the performance of your disk subsystem. People
- using a Hudson-style messagebase or a hardware cache controller for the
- harddisk may notice no performance gain at all. PacketSorter is not
- limited to be used only with Squish. You may use PacketSorter with any
- other echomail processor.
-
- FTS-0001 specifies no limit to the size of messages. Some echomail
- processors crash if they're fed with messages that exceed a certain
- size or those messages get dumped. The following echomail tosssers are
- said to have limits:
-
- GroupMail 8K
- QMail 16K
- ConfMail 14K
- QEcho 10K
- TosScan 32K
- Squish 16K
- FastEcho 64K (configurable)
-
- PacketSorter can split and unsplit large messages according to FSC-
- 0047, so that your echomail processor operates well. Systems capable
- processing large messages can get the messages unsplit to their
- original size. See option -s.
-
- Large inbound packets can be broken down into several smaller ones.
- Some echomail processors benefit from this by saving disk space during
- tossing for downlinks. If packets are considered as "bad" by the
- echomail processor you may like to have smaller packets to examine
- manually.
-
- Messages within the echo areas can be sorted by subject and time or by
- time only. Sorting by time usually does not "look" different from
- unsorted messages when you list the messages in your mail reader but
- helps to put original messages before the replies. Sorting by subject
- and time does look different: all messages with identical subject are
- grouped together so you can quickly see what's going on in a thread.
- See options -otime, -osubject.
-
-
- PacketSorter v1.4 page 5/19
-
-
- Sometimes you receive packets not only containig messages but also some
- "garbage". This garbage is introduced by poor software or transmission
- errors. The consequence of such "grunged" packets is that your tosser
- complains about "grunged messages", "data beyond logical end of file"
- or just loses messages. PacketSorter can clean such packets by throwing
- out the garbage, thus creating proper packets. Proper messages before
- and following a bad chunk will not be lost. Messages beyond the logical
- end of file will be recovered. Grunged packets can be renamed to *.bad
- depending on the amount of garbage removed. See option -g and the
- section 'Removing garbage from packets' for details.
-
-
- 5. Installation
- ---------------
-
- PacketSorter can be run in three different environments (DOS-VCPI, DOS-
- DPMI and OS/2). There are two DOS extenders (emx.exe and rsx.exe) and
- one DLL (emx.dll for OS/2) packed with PacketSorter in the distribution
- archives.
-
-
- As a VCPI client
- ----------------
-
- This is the 'normal' mode under DOS. Make sure that you either have
- EMM386.EXE installed with EMS or don't have EMM386.EXE installed. If
- you have EMM386 installed without providing EMS memory you will see
- an error message 'Virtual mode not supported without VCPI'.
-
- The VCPI mode uses the file emx.exe. Make sure that emx.exe can be
- found in one of the directories of the PATH.
-
- You may look at the file emxinst.doc for advanced installation
- options available for the EMX DOS extender.
-
-
-
- As a DPMI client
- ----------------
-
- This is to use if you want PacketSorter to run in Windows or OS/2
- DOS-emulation (DOS box). PacketSorter needs the file RSX.EXE to run
- as a DPMI client. Make sure that rsx.exe can be found in one of the
- directories of the PATH and add the following to your environment:
- RSXOPT=-e
- You can do this by putting the following line in your autoexec.bat:
- SET RSXOPT=-e
- If you forget to set up the environment variable RSXOPT, you'll get
- an error message 'Can't find rsx387' when you start PacketSorter.
-
- You may look at the file rsxinst.doc for advanced installation
- options available for the RSX DOS extender.
-
-
- PacketSorter v1.4 page 6/19
-
-
- Under OS/2
- ----------
-
- Copy emx.dll to \os2\dll
-
- You may look at the file emxinst.doc for advanced installation
- options available for the EMX runtime system.
-
-
-
-
-
- Quick installation for Squish users
- -----------------------------------
-
- Follow the instructions for setting up PacketSorter to run as a DPMI,
- VCPI or OS/2 client. Make sure that Squish can swap to disk (swap
- keyword in squish.cfg).
-
- Copy PKTSORT.EXE in your Squish directory.
-
- Edit the EXTRACT commands in your compress.cfg file:
-
- Insert 'pktsort -s15000 -p500' before each call to an unpacker.
- Examples:
-
- OS2 Extract unzip -n %a %f
- becomes
- OS2 Extract pktsort -s16000 -p500 unzip -n %a %f
-
- OS2 Extract doswrap pkunzip -n %a %f
- becomes
- OS2 Extract pktsort -s16000 -p500 doswrap pkunzip -n %a %f
-
- DOS Extract pkunzip -n %a %f
- becomes
- DOS Extract pktsort -s16000 -p500 pkunzip -n %a %f
-
- If your system has less than 2 MB of free memory above the first
- megabyte, please read the section about the command line option -w in
- this document.
-
-
- Quick installation for CrossPoint users
- ---------------------------------------
-
- Follow the instructions for setting up PacketSorter to run as a DPMI
- or VCPI client.
-
- Copy PKTSORT.EXE to your CrossPoint directory.
-
- For each Fido-Box you have set up in 'Edit/Boxen' do the following:
-
-
- PacketSorter v1.4 page 7/19
-
-
- Select 'Edit/Point' (in 'Edit/Boxen'). In the dialog, change the
- 'Download-Packer' entry by inserting '\xp\pktsort -s256000 -osubject'
- before the call to the packer (this assumes that CrossPoint is
- located in \XP).
-
- Example:
-
- pkunzip $DOWNFILE
- becomes
- \xp\pktsort -s256000 -osubject pkunzip $DOWNFILE
-
- As CrossPoint has no (known) limits to the size of messages that can
- be processed, the setting -s256000 will only split messages that
- exceed 265000 bytes and all already split messages that are smaller
- will be unsplit, so that you get most of the messages back to their
- original size.
- This is useful if you get Usenet news via a Usenet/Fidonet gateway. A
- lot of messages from the Usenet get split at the gateway, especially
- large UUENCODED files. Having these messages unsplit to their
- original size, you can directly UUDECODE them from within CrossPoint
- without unsplitting them manually.
-
- The setting -osubject sorts the messages by subject.
-
- If you want to use different options, refer to the section 'Command
- line options' in this document.
-
- If your system has less than 2 MB of free memory above the first
- megabyte, please read the section about the command line option -w in
- this document.
-
-
-
- Quick installation for IMail users
- ----------------------------------
-
- Follow the instructions for setting up PacketSorter to run as a DPMI
- or VCPI client.
-
- Copy PKTSORT.EXE to your IMail directory. Copy the sample
- configuration file pktsort.cfg in your IMail directory. You will have
- to edit the configuration file in a later step.
-
- Set up the environment variable PKTSORT and specify the configuration
- to be used. Best is to include this in your AUTOECEC.BAT like that:
-
- SET PKTSORT=-cc:\imail\pktsort.cfg
-
- Edit the configuration file pktsort.cfg. You will have to set up some
- Archiver definitions for the archiver (decompression) programs you
- use:
-
- Eg. (add this to the configuration file):
-
- Archiver ARJ c:\tools\arj.exe
-
-
- PacketSorter v1.4 page 8/19
-
-
- Archiver ZIP c:\tools\pkunzip.exe
- Archiver LHA c:\tools\lha.exe
- Archiver GUS c:\tools\gus.exe
-
- Now run Imsetup to change the decompression program settings in the
- following way: in each decompression program definition replace the
- name of the decompression program by PKTSORT.EXE -eKEY, where KEY is
- the abbreviation for the Archiver definition in the configuration
- file.
-
- Examples:
-
- ARJ ARJ.EXE e -y
- becomes
- ARJ PKTSORT.EXE -eARJ e -y
-
- PkZip PkunZip.exe -o -ed
- becomes
- PkZip PKTSORT.EXE -eZIP -o -ed
-
- You may edit the other settings in pktsort.cfg to fit your needs.
-
- Thanks to Johann H. Addicks for finding out how to set up
- PacketSorter in IMail.
-
-
-
- Quick installation for FastEcho users
- -------------------------------------
-
- Follow the instructions for setting up PacketSorter to run as a DPMI
- or VCPI client.
-
- Copy PKTSORT.EXE to your FastEcho directory.
-
- Start FESetup and look which directory is set up as the TEMP-INBOUND
- directory for FastEcho. You'll find this setting in the menu
- SYSTEM/PATHNAMES/Temp. Inb. If there is no temporary inbound
- directory specified, please choose one, because the way installing
- PacketSorter for FastEcho is described here will not work without a
- temp. inbound directory.
-
- Check the maximum message size you have configured for FastEcho. You
- can find the value in SYSTEM/PARAMETERS/MESSAGEBUFFERSIZE. If the
- value there is zero, it means a maximum message size of 32000.
-
- Now change to the dialog where the decompession programs are set up.
- It's in SYSTEM/DECOMPRESSION PROGRAMS.
-
- Change each decompression program definition in the following way:
- preceed each definition with 'PKTSORT.EXE -d<temp-inbound> -
- s<max_message>'. <temp-inbound> is the directory you looked up
- before. <max_message> is the maximum message size you looked up
- before minus 1000 (for additional SEEN-BYs etc.).
-
-
- PacketSorter v1.4 page 9/19
-
-
- Examples:
-
- I assume your temporary inbound directory is c:\fastecho\temp and the
- maximum message size is 32000.
-
- The decompression program definitions look like this:
-
- PKZip PkunZip.Exe -o -ed
- becomes
- PKZip PKTSORT.EXE -dc:\fastecho\temp -s31000 PkunZip.exe -o -ed
-
- LHa LHa.Exe e -m1
- becomes
- LHa PKTSORT.EXE -dc:\fastecho\temp -s31000 LHa.exe e -m1
-
- ARJ arj e -y
- becomes
- ARJ PKTSORT.EXE -dc:\fastecho\temp -s31000 arj.exe e -y
-
-
- Other options to PKTSORT.EXE may be specified before the name of the
- decompression program. Example:
-
- ARJ PKTSORT.EXE -dc:\fastecho\temp -s31000 -g3000 -osubject arj.exe
- e -y
-
- Another way to specify additional options to PacketSorter is to use a
- configuration file. Copy pktsort.cfg into the FastEcho directory and
- edit it to your needs.
-
-
-
- Installation for users of other tossers
- ---------------------------------------
-
- PacketSorter needs to be run on inbound packets, i.e. before the
- packets are tossed. Usually, inbound packets are received in
- compressed form in archives. Many tossers are smart enough to unpack
- the archives by calling an uncompression utility which you may
- specify in the tosser setup. This is the point where to 'hook' up
- PacketSorter: you specify PacketSorter as an uncompression program
- and let PacketSorter first call the 'real' uncompression program and
- then process the uncompressed packets. This way only packets received
- in compressed form will be processed by PacketSorter. If you want to
- process packets received uncompressed too, start PacketSorter before
- starting the tosser without specifying an archiver. See [program-
- with-args] in the 'Command line options' section of this document for
- further explaination.
-
- If you don't let your tosser unpack the archives, for example because
- you use an archiver shell like GUS before tossing, just run
- PacketSorter from the batch file after unpacking the archives.
-
-
- PacketSorter v1.4 page 10/19
-
-
- 6. Ways of configuration
- ------------------------
-
- PacketSorter can be configured in three different ways. One is to use
- command line parameters, the second is to use an environment variable
- and the third is to use a configuration file. Theese three methods can
- be combined. If a configuration option is set by more than one method
- the following rule determines which one will be used: environment
- setting overrides configuration file setting and command line setting
- overrides environment setting.
-
- Archiver entries can only be defined in the configuration file.
-
-
- 7. Command line options
- -----------------------
-
- Syntax:
- pktsort[-c<file>] [-w<count>] [-s<size>] [-p<count>]
- [-osubject | -otime] [-l<file>] [-d<dir>]
- [-g<size>] [-h] [-e<entry> [args] | program-with-args]
-
-
-
- -c<file> configuration file name
-
- Specify the name of the configuration file. The default is
- "pktsort.cfg" which is searched in the current directory. Note that
- the current directory is not neccessarily the same as that where
- PKTSORT.EXE is located. If you want to be sure that the configuration
- file can allways be found, use the full path and filename.
- PacketSorter does not complain if the default configuration file
- cannot be found, only if a configuration file explicitly specified
- with -c cannot be found.
-
-
- -w<count>number of messages to keep in memory
-
- Specify the size of the message window, that is the maximum number of
- messages to keep in main memory during defragmentation and
- subject/time sorting. If this number is less than the actual number
- of messages to process, the messages can only be partially
- defragmented or sorted. The default size is 1000. With an average
- message size of 1.3 kbytes a maximum of 1.3 MB of main memory would
- be used for messages. Do not specify a size that would need more than
- your free memory, because your system would then start swapping
- memory to disk, yielding very poor performance (this applies both to
- DOS and OS/2!). A <count> of 1 means no defragmentation/sorting.
- (Un)Splitting messages and packets and removing garbage from packets
- still works fine with a <count> of 1.
-
-
-
- -s<size> limit in bytes for (un)splitting messages
-
-
- PacketSorter v1.4 page 11/19
-
-
- Enable message splitting and unsplitting according to FSC-0047.
- Messages larger than <size> are split into smaller parts. Message-id
- kludges are stripped from all parts but the first to prevent those
- parts to be killed by dupe detection. Messages which are already
- split according to FTS-0047 will be unsplit internally and will be
- re-split if the size of the unsplit messages exceeds <size>. Incoming
- split messages can only be unsplit if all split parts are seen during
- a run of PacketSorter. Messages split multiple times, as it is
- possible with versions of PacketSorter up to v1.1b, will be unsplit
- 'recursivly'. The default is no splitting/unsplitting. The minimum
- <size> is 8000. Use the maximum message size minus 1000 (for SEEN-BYs
- etc.) your system can handle for <size>.
-
-
-
- -p<count>max. number of messages in output packets
-
- Create several smaller output packets instead of one large packet.
- <count> is the maximum number of messages to put into one packet. If
- a message is split into several parts, these parts count as one
- message in this context. The default is 1000.
-
-
-
- -otime sort messages by time
-
- Sort messages within the areas by their creation time. This will help
- keeping original messages before their replies. The sorting will only
- affect as much messages as are kept internally (as specified with
- option -w). If not all messages to process are kept internally the
- sorting will only be partial.
-
-
-
- -osubjectsort messages by subject and time
-
- Sort messages within the areas by their subject. This will help you
- to follow echomail threads with your message reader. Messages with
- identical subject are sorted by their creation time. Leading 'Re: ',
- 'Re^2:' etc. in the subject line are ignored while sorting, so that
- messages containing a 'Re:' in the subject appear near the messages
- with the original subject. Complete sorting is only possible if all
- messages to process can be kept internally (see option -w and comment
- in option -otime).
- Please note: while you may like the messages sorted by their subject,
- others may prefer the 'unordered' style. If you have other nodes
- linked to your system and sort the messages by subject, be prepared
- that one or the other node complains about the new look.
-
-
-
- -g<size> remove garbage from packets
-
-
- PacketSorter v1.4 page 12/19
-
-
- With this option, PacketSorter will remove garbage from bad packets
- instead of refusing to process them. If garbage is removed from a
- packet, PacketSorter exactly reports which packet it is, where it
- came from and which portions of the packet have been removed. The
- original packets may automatically be saved by renaming them to *.bad
- (or *.b00, *.b01 etc. if the file already exists) for later
- examination. You can control if a "bad" packet is renamed to *.bad by
- the value you specify for <size>. If more than <size> bytes of
- garbage have been removed from the packet, it will be renamed to
- *.bad. Thus, -g0 will rename any packet with removed garbage and -
- g999999999 is probably enough to disable renaming completly. So if
- you don't care about say 3000 lost bytes, you specify -g3000. If more
- than 3000 bytes are removed, you'll have the original packet renamed
- for later examination. The valid portions in the packet are processed
- in any case, not regarding whether the packet is renamed to *.bad or
- not. See section 'Removing garbage from packets' in this document for
- further details.
-
-
- -e<entry>select Archiver entry from cfg file
-
- This option selects an Archiver entry which is defined in the
- configuration file. <entry> is the key which selects the Archiver
- entry from the configuration file. -e<entry> must allways be the last
- option to PacketSorter. Options following -e<entry> will only be seen
- by the uncompression program selected. When PacketSorter is defined
- as an archiver program in the echomail tosser, usually [program-with-
- args] is used to tell PacketSorter which uncompression program to
- call before processing packets. Some echomail tossers (like IMail)
- strip all paths from their uncompression program definitions, so that
- specifying a path to the uncompression program in [program-with-args]
- is not possible. One way to get around this would be to specify
- [program-with-args] in the PKTSORT environment variable, but this way
- only one uncompression program could be specified which is usually
- not enough. Using -e<entry>, a complete archiver definition can be
- retrieved from the configuration file. Options needed by the
- uncompression program may follow -e<entry>. Here is an example:
- Assume you have the following Archiver definition in the
- configuration file:
-
- Archiver UNZIP c:\packer\unzip.exe
-
- and the uncompression program definition in the tosser is
-
- unzip -d %a %f
-
- Then you can use
-
- PKTSORT -s15000 -osubject -eUNZIP -d %a %f
-
-
- -l<file> log file name
-
- Log processing information to <file>. The default is no logging.
-
-
- PacketSorter v1.4 page 13/19
-
-
-
-
- -d<dir> directory where packets are searched
-
- Specify dir as the directory where PacketSorter finds FidoNet packets
- to process. Default is the current directory. Be careful if you use
- this option. Squish for example will unpack packet files to the
- current (Squish) directory. It should not be necessary to use this
- option if you let your echomail tosser call PacketSorter (except when
- using FastEcho).
-
-
- -h help
-
- Display a short help.
-
-
-
- [program-with-args]exec. archiver before processing
-
- Execute a program (with optional arguments) before processing
- packets. Only packets that are created by that program will then be
- processed by PacketSorter. If the program returns another code than
- zero, PacketSorter will not process packets. The program will usually
- be an archives extraction program like unzip. You can let your
- echomail tosser call PacketSorter by specifiying PKTSORT as your
- archives extractor and using the actual archives processor (with
- options) as program-with-args. See "Quick installation for Squish
- users" for examples. If program-with-args is not specified,
- PacketSorter will process all FTS-0001 packets it finds in the
- current directory or that one specified by -d. This is useful if you
- receive uncompressed packets and run PacketSorter from a batch file
- before calling the tosser. See also option -e.
-
-
- 8. Setting the options via an environment variable
- --------------------------------------------------
-
- You may specifiy the options for PacketSorter in the environment
- variable PKTSORT. This is useful if you run PacketSorter from an
- archiver entry of an echomail processor and the entry field size is too
- short to include all options you would like to specify. The format and
- syntax is the same as if the options are given at the command-line. If
- you specify the options via the environment *and* the command line, the
- command line options will overwrite the options specified in the
- environment, as long as [program-with-args] is not specified in the
- environment. If [program-with-args] is specified in the environment,
- all command line option are treated as additional parameters for
- [program-with-args].
-
- Example:
-
- SET PKTSORT=-s15000 -lc:\logs\pktsort.log
-
- pktsort unzip -n %a %f
-
-
- PacketSorter v1.4 page 14/19
-
-
-
- is the same as
-
- pktsort -s15000 -lc:\logs\pktsort.log unzip -n %a %f
-
-
- 9. Setting the options via a configuration file
- -----------------------------------------------
-
- The configuration file consits of lines starting with a keyword
- followed by a value. All lines not starting with a keyword are
- considered comments. Keywords never start with a semicolon and it is
- good style to preceed comment lines with a semicolon.
-
- There is a 1-to-1 correspondence between the command line options and
- the keywords in the configuration file, so I just present a list of the
- keywords with the corresponding command line option instead of
- repeating all the information contained in the section 'Command line
- options'.
-
- Keyword command line option possible values
- ------- ------------------- ---------------
- MessageWindowSize -w 1 - 4294967295
- SplitMessages -s 8000 - 4294967295
- SplitPackets -p 1 - 4294967295
- SortMessagesBy -o Subject or Time
- RemoveGarbage -g 0 - 4294967295
- LogFile -l any valid path\file
- PacketDirectory -d any valid directory
- DefaultArchiver -e any valid Archiver entry
- key
-
- The keyword "Archiver" has no corresponding command line option. An
- Archiver entry (definition) in the configuration file looks like this:
-
- Archiver KEY path-and-filename
-
- eg.
-
- Archiver UNZIP c:\packer\unzip.exe
-
- There may be as many Archiver definitions as you like. See option -e
- for details.
-
-
- The file 'pktsort.cfg' is a sample configuration file.
-
-
- 10. Packets recognized and created
- ----------------------------------
-
- PacketSorter will process those packets that have the filename
- extension .pkt and that have a valid packet id in the packet header.
-
-
- PacketSorter v1.4 page 15/19
-
-
- PacketSorter merges all packets that originate from the same node or
- point and contain the same password. The name of the packets created
- will be of the form ????????.PKT, where ???????? is the creation time
- according to FSC-0015.
-
- PacketSorter uses a hashing technique to perform the defragmentation.
- So there is no 'real' sorting done and the defragmented areas are
- unordered. The order of the messages within an area remains unchanged,
- unless the options -otime or -osubject are used.
-
-
- 11. Return codes
- ----------------
-
- PacketSorter returns the return code of the program executed (program-
- with-args) or zero. If PacketSorter encounters any problem, the
- original packets are retained and the tosser may try to toss the
- undefragmented packets.
-
-
- 12. Disk space consumption
- --------------------------
-
- PacketSorter needs exactly as much additional disk space as is
- occupied by the packets to process. This is needed because of security
- reasons.
-
-
- 13. Removing garbage from packets
- ---------------------------------
-
- This section is for those who want to understand how garbage is removed
- from packets by PacketSorter in detail.
-
- A (proper) FidoNet FTS-0001 packet consists of a packet header, zero or
- more packed messages and an end-of-packet marker. The packet header is
- identified by a packet ID and is not of real interest here, because
- PacketSorter does not process packets with an invalid packet header.
- The packed messages consist of a packed message header and four zero-
- terminated strings which contain the originator name, the destination
- name, the subject and the message text. The packed message header is
- identified by a packed message ID.
-
- Without specifying -g<size>, PacketSorter considers those messages as
- being valid, that have a correct packed message ID, a correctly sized
- date field (non-FTS one-space format is corrected on the fly without
- notification) and the from-name, to-name and subject not longer than
- FTS-0001 allows. The message ID is the first two bytes of a packed
- message. If a previous message is not properly terminated, i.e. there
- are some extra bytes following the last of the four strings, the
- correct message ID cannot be detected and you'll get the error message
- 'invalid packed message header, skipping packets from...'.
-
-
- PacketSorter v1.4 page 16/19
-
-
- Now, if -g<size> is specified, PacketSorter tries to repair a grunged
- date field and truncates too long from-name, to-name and subject. If
- one of these is truncated, from-name, to-name and subject must not be
- empty and the message text must be longer than one byte, else the
- message will be deleted. If this fails, PacketSorter skips bytes in the
- packet until a vaild packed message header is found. If the next
- (potential) message is found this way, PacketSorter is a bit more
- restrictive as to the contents of this message, because I don't want
- PacketSorter to turn "real garbage" into messages. The message must
- start with a packed message ID (of course), contain a valid date/time
- field (one or two spaces format) and the lengths of the first three
- strings must conform to FTS-0001. If one of these criteria is not met,
- PacketSorter continues skipping bytes in search for the next (proper)
- message.
-
- Grunged date repair goes like that: If it is one-space format, it will
- be corrected to two-space format. If it is shorter than one-space
- format + 2, longer than 6 characters and is accepted by the regular
- expression [0-9A-Za-z:.- ]+ it will be replaced by 1-1-80. If it is
- longer than two-space format it is considered uncorrectable and the
- message will be invalid.
-
- Additionally, PacketSorter continues searching for messages beyond the
- end of packet marker if the physical end of the file is not yet
- reached. In this case, the end of packet marker is just treated as
- "garbage". This has a recovery effect because other software might stop
- processing messages beyond the end of packet marker, thus losing
- messages.
-
- A missing end of packet marker at the physical end of the file (i.e.
- because the packet has been truncated) will be ingnored.
-
- Messages that passed PacketSorter but contain other "dangerous" data,
- such as missing or too long origin lines or non ASCII characters in the
- message text may still confuse other software. If you want additional
- protection against such messages, you could run GMD (which is great) on
- the packets before or after they have been processed by PacketSorter.
-
-
-
- 14. Technology
- --------------
-
- PacketSorter is written in C++ and compiled with GNU GCC. Runtime
- system is EMX for XMS and VCPI operation and RSX for operation as a
- DPMI client. PacketSorter runs both under OS/2 and DOS in 32-BIT flat
- memory model.
-
-
- 15. What is different in the registered version
- -----------------------------------------------
-
- The unregistered version says that it is unregistered and it beeps
- between 20:00 and 20:59. The registered version does not do this.
-
-
- PacketSorter v1.4 page 17/19
-
-
-
- 16. Other operating systems
- ---------------------------
-
- PacketSorter might be used on other operating systems than DOS and
- OS/2, as long as they run on an i386 (or higher). If you choose to go
- that way you are probably on your own, as several questions may arise I
- cannot answer (eg. how do I call a native MS-Windows program from
- within Squish running in MS-Windows DOS emulation).
-
- Also note that you must not distribute PacketSorter in another form as
- in the original distribution archives. If you come up with
- PacketSorter for another opertating system, you may use it only for
- your own purposes.
-
-
- native MS-Windows
-
- If you'd like to run PacketSorter as a native MS-Windows application
- (rather than in Windows' DOS emulation) get the archives named
- rsxwin2a.zip from the FTP-server ftp.uni-bielefeld.de in the
- directory /pub/systems/msdos/misc. RSXWIN is free software by Rainer
- Schnittker.
-
- Follow the instructions contained in that archives to make
- PacketSorter run as a native MS-Windows application. (Simply execute
- 'RSXWIN.EXE -e PKTSORT.EXE [options]'.) When I tried it, it seemed to
- work pretty good.
-
-
- Linux/Unix/Nextstep
-
- If you are a programmer: the distribution archives contain the files
- needed to link the PacketSorter executable (except for some FSF
- libraries) in the sub-archives devobj.zip. Maybe you are able to link
- the .o files under Linux or other operating systems using an i386. I
- never tried this, but if you do, I'd be interested in hearing about
- your experiences.
-
-
- 17. Author
- ----------
-
- The autor of PacketSorter is Rolf K. Wilms. He may be contacted via
-
- Fidonet: Rolf Wilms@2:2447/107.8
- or
- Rolf Wilms@2:2445/10.9 (R24-Classic)
-
- Internet: rwilms@kottan.bo.open.de
-
-
- Fido via Internet:
-
- Write a netmail to UUCP@1:105/42
-
-
- PacketSorter v1.4 page 18/19
-
-
-
- and make the following line the FIRST line in
- the message text:
-
- to: rwilms@kottan.bo.open.de
-
-
- Mail: Rolf K. Wilms,
- Franziskastr. 44a,
- 45131 Essen,
- Germany
-
- Comments and bug reports are welcome.
-
-
- 18. Contents of the distribution archives
- -----------------------------------------
-
- The original distribution archives of PacketSorter contains the
- following files:
-
- pktsort.doc this file
- license.doc PacketSorter copying and usage license
- order.frm how to get your registration key
- pktsort.exe PacketSorter executable for DOS and OS/2
- register.exe program that turns PKTSORT.EXE into the
- registered version (you need a 'key', see
- license.doc and order.frm)
- pktsort.cfg sample configuration file
- emx.exe EMX runtime module for DOS
- emx.dll EMX runtime module for OS/2
- emxrt.doc Advanced installation information for EMX
- rsx.exe DPMI compliant DOS-extender
- file_id.diz a small description of PacketSorter
- desc.sdi an even smaller description of PacketSorter
- history.doc what has been done
- upgrade.doc upgrading PacketSorter from earlier versions
- devobj.zip contains the files needed to link a new
- PKTSORT executable
- otherlic.zip contains licenses of the free software used by
- or aggregated with PacketSorter.
-
- The sub archives otherlic.zip contain the following files:
-
- copying GNU General Public License
- copying.lib GNU General Public Library License
- copying.emx EMX Copying License
- copying.rsx RSX Copying License
-
- The sub archives devobj.zip contain the following files:
-
- hash.o, makefile.pst, mkkey.o, offset.cc, pktsort.o, readme.dev,
- reginfo.h, register.cc
-
-
- PacketSorter v1.4 page 19/19
-
-
- 19. Thanks
- ----------
-
- Thanks to Peter Scheffer, Peter Kaszanics, Robert Dahlem and Johann H.
- Addicks for their suggestions and for testing PacketSorter.